package com.qyhl.module_activities.act.signup;


import com.qyhl.webtv.commonlib.entity.UpTokenBean;
import com.qyhl.webtv.commonlib.entity.act.ActivityViewBean;
import com.qyhl.webtv.commonlib.entity.act.ActivityViewOptionBean;
import com.qyhl.webtv.commonlib.entity.act.PlayerResultBean;
import com.qyhl.webtv.commonlib.entity.act.UploadBean;

import java.util.HashMap;
import java.util.List;

/**
 * Created  on 2017/12/25.
 *
 * @author helin
 */

public interface SignUpActContract {


    interface SignUpActView {

        /**
         * 获取失败
         *
         * @param string
         */
        void onError(String string);

        /**
         * 空数据
         */
        void onEmpty();

        /**
         * 获取成功
         *
         * @param data
         */
        void onSuccess(List<ActivityViewBean> data);

        /**
         * 获取token成功
         *
         * @param token
         */
        void getTokenSuccess(UpTokenBean token  , boolean isUpload);

        /**
         * 获取token失败
         */
        void getTokenError(boolean isUpload);

        /**
         * 报名失败
         */
        void uplaodError(int code, String msg);

        /**
         * 报名成功
         */
        void signSuccess();

        /**
         * 检查失败
         *
         * @param msg
         */
        void checkError(String msg);

        /**
         * 检查是否成功
         */
        void checkSuccess();

        /**
         * 获取封面图ViewId
         *
         * @return
         */
        int getApplyViewId();
    }

    interface SignUpActPresenter {

        /**
         * 获取数据失败
         *
         * @param i
         * @param string
         */
        void onError(int i, String string);

        /**
         * 获取数据成功
         *
         * @param data
         */
        void onSuccess(List<ActivityViewBean> data);

        /**
         * 获取数据
         *
         * @param mActId
         */
        void getActViews(int mActId);

        /**
         * 获取多选字符串
         *
         * @param checks
         * @return
         */
        String getOptionStr(List<String> checks);

        /**
         * 获取多选已选Id
         *
         * @param checks
         * @param viewOptions
         * @return
         */
        String getOptioinIds(List<String> checks, List<ActivityViewOptionBean> viewOptions);

        void getTokenSuccess(UpTokenBean data, boolean isUpload);

        void getTokenError(boolean isUpload);
        /**
         * 获取七牛token
         */
        void getToken(boolean isUpload);

        /**
         * 组合报名数据
         *
         * @param results
         * @param files
         * @param workName
         * @param videoWorkName
         */
        void combinationData(List<PlayerResultBean> results, List<UploadBean> files, int actId, String workName, String workDescription, String username, String videoWorkName,String videoDesc);


        /**
         * 报名失败
         */
        void uplodError(int code, String msg);

        /**
         * 报名成功
         */
        void signSuccess();

        /**
         * 检查是否报名
         */
        void checkSign(String actId);

        /**
         * 获取失败
         *
         * @param msg
         */
        void checkError(String msg);

        /**
         * 检查成功 未报名
         */
        void checkSuccess();
    }

    interface SignUpActModel {
        /**
         * 获取自定义View
         *
         * @param actId
         */
        void getActView(int actId);


        /**
         * 获取图片上传token
         */
        void getQiuniuToken(boolean isUpload);

        /**
         * 上传报名数据
         *
         * @param params
         */
        void uploadData(HashMap<String, String> params);

        /**
         * 检查是否报名
         */
        void checkSign(String actId);
    }


}
